iT邦幫忙

0

(二) NAO(V5) Choregraphe 開發環境介紹

  • 分享至 

  • xImage
  •  

一、前言

第二篇為開發環境介紹,Choregraphe在官網有很詳盡的教學,Choregraphe為圖形化介面,可以輕鬆的寫出說話、移動、人臉辨識的程式,而無需寫任何程式碼,當然,較為複雜的功能還是需要,建議新手把基礎介紹的hello world三個部分看完,要更仔細的介紹就看Tutorial。
Choregraphe基礎介紹: What is Choregraphe
Choregraphe Tutorials: Choregraphe Tutorials

二、環境介面

https://ithelp.ithome.com.tw/upload/images/20191210/20123336rCeo2eoAgL.jpg
上圖為choregraphe環境介面,大概分為八個部分,分別為:

  1. 基本操作區: 有開檔、讀檔、連接機器人、調整機器人聲音及狀態、看機器人目前電量等。
  2. 專案目錄區(Project content): 可看到專案大概的檔案架構,Choregraphe中設計好的流程為一個behavior,其中會有一個或多個Box,Properties中可描述專案及改專案名稱等。
  3. 函式庫區(Box libraries): 裡面提供已寫好的各種功能的Box可以直接使用,可直接拖曳去4號的工作執行區使用。
  4. 工作執行區(grey area): 可以在裡面新增Box或dialog,透過右鍵新增或拖曳函式庫區的Box使用。
  5. 訊息輸出區(Log viewer): 專案執行後的輸出都會在這,log有分level,輸出則是看你怎麼設定log,通常我是用Info level輸出資料。
  6. 對話區(Dialog): 正常不會顯示,在view中選取Dialog打勾後就會出來,可以在裡面打字與機器人對話,在behavior中有設定Dialog或Speech Reco. 的Box時,在跑專案時可透過Dialog區打字使機器人辨識,也會輸出機器人說出的話等。
  7. 影像區(Video monitor)、標準動作函式庫(Pose library): video monitor顯示目前NAO拍攝的影像。 Pose library有基本動作,點下去機器人會即時做出相應的動作。
  8. 機器人應用區(Robot Applications)、機器人視圖區(Robot View): 顯示目前機器人已安裝的專案,也可設定開機直接啟動哪一個專案,裡面的Animation library內建了許多機器人已設定好動作的behavior,使用時直接call非常方便。 視圖區可看到目前機器人的模擬的動作等,如果偵測到人臉會出現黃色球。

三、程式設計

基本的專案執行在hello world 1(Choregraphe基礎介紹網址中)有講解,我主要介紹Box如何設計,從下圖的BOX中開始,在Choregraphe上開發上的好處是能夠看到目前在哪個Box中運作,方便程式設計者掌控系統的流程,每個Box都是一個class,需要設定輸入的資料型態以及輸出的格式並有特定的寫法,從Box中https://ithelp.ithome.com.tw/upload/images/20200401/20123336teFdASVFWC.png 點右鍵選取Edit box可看到目前box的input/ouput及擁有的變數

https://ithelp.ithome.com.tw/upload/images/20200401/20123336twK6mjhaE7.png

我們接著點擊inputs中的中間的藍色方塊,目前選擇的是onStart的input,所以會看到下圖的畫面,對應到的是Box圖左上角黑色箭頭的進入點
https://ithelp.ithome.com.tw/upload/images/20200401/201233368DFIi8KKic.png

其中要修改的為Name、Type跟Nature,Name為你的method名稱,程式碼的method名稱必須與Name一致,input的method必須加上onInput及底線寫為def onInput_yourmethodname(self):,Type為輸入的資料型態,Nature為輸入點的型態。

Type可設為:

  • Dynamic: 輸入甚麼型態都可以
  • "Bang": 不輸入資料
  • String: 字串
  • number: 數字

Nature可設為:

  • onStart: 通常會寫為初始化Box會使用到的變數,設定一些要用的狀態等,基本上只會設一個input的Nature為onStart。
  • onEvent: 對應到Box的class中寫好的method。
  • onStop: 取消使用此Box,對應的method中大多會寫為清除使用的變數。

以下圖來講解Box的功能設計範例,使用內建的Speech Reco. Box以及為其所對應的內容程式碼講解。

https://ithelp.ithome.com.tw/upload/images/20200401/20123336jwB5IFIhLX.png

每一個Box的進入點以及離開點都有各自設定好的輸入輸出,其根據不同的輸出資料型態而有不同的顏色,例如Type為String輸出線條為藍色,要輸出的型態以及資料數量都需要預先設定好,否則程式會出現錯誤,或者是沒有接收到應該取得的資料。上圖中的語音辨識進入點會跑到def onInput_onStart(self): 這一行的method開始運作,而如果要接收資料就要在Box那邊設定Type為String,然後程式碼部分改成def onInput_onStart(self, data): 才能夠取得傳輸過來的資料。
https://ithelp.ithome.com.tw/upload/images/20200401/20123336VGTbJZRwpT.png

以上大概是設計每一個Box的初步流程,在裡面有要求使用麥克風等要透過NAO SDK中宣告變數才能使用ALSpeechRecognition模組以及ALMemory的模組,在透過裡面的methods才能夠開啟語音辨識功能,以上則是choregraphe的Box大致上的開發流程,更多的請找Tutorials。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言